我正在构建一个应用程序,它给另一个应用程序mainWindowhandle,它收集有关窗口状态的信息。我收集有关子窗口的信息没有问题,但我无法访问应用程序的其他打开窗口甚至菜单。有没有办法获取应用程序的所有窗口句柄? 最佳答案 您可以执行Process.MainWindowHandle似乎执行的操作:使用P/Invoke调用EnumWindows函数,它为系统中的每个顶层窗口调用一个回调方法。在您的回调中,调用GetWindowThreadProcessId,并将窗口的进程ID与Process.Id进行比较;如果进程ID匹配,则将窗
我想关闭某个名称的窗口(任何应用程序,例如计算器等)。如何在C#中实现?导入WinAPI函数? 最佳答案 是的,您应该导入WindowsAPI函数:FindWindow()、SendMessage();和WM_CLOSE常量。WindowsAPI函数的native定义:[DllImport("user32.dll",SetLastError=true)]staticexternIntPtrFindWindow(stringlpClassName,stringlpWindowName);//////FindwindowbyCaptio
如何获取WPF窗口的最小化框点击事件? 最佳答案 有一个名为StateChanged的事件(根据帮助)看起来它可能会执行您想要的操作。Occurswhenthewindow'sWindowStatepropertychanges.帮助说它只在Vista下的.NET3.0和3.5中受支持,但我刚刚在XP上试过它,当窗口最小化、最大化和恢复时它会触发。但是,根据我的测试,它会在状态更改之后触发,因此如果您想在窗口最小化之前执行某些操作,这可能不是您需要的方法。您必须检查实际状态以确保它是正确的。privatevoidWindow_Sta
基本上,我制作的控制台应用程序可以执行一些需要几分钟的任务。我想让它在任务栏中闪烁,以便在它完成任务时通知我。 最佳答案 使用answerthat@Zackposted和anotheronetofindthehandleofaconsoleapp这是我想出来的,效果很好。classProgram{[DllImport("user32.dll")][return:MarshalAs(UnmanagedType.Bool)]staticexternboolFlashWindowEx(refFLASHWINFOpwfi);[StructL
在我的WPF应用程序中,我有很多弹出式打开的自定义对话框,因此用户可以使用someDialogClass.ShowDialog()执行各种操作。为确保对话框位于调用它的窗口的顶部,我将Topmost="True"添加到对话框XAML文件的Window标记中。这可行,但对话框显示在每个打开的窗口上——甚至是其他应用程序。这真的很烦人。那么有没有办法让对话框强制始终位于其父应用程序之上,但不一定位于其他应用程序之上?这是我所拥有的对话框的Window标记的简化版本(省略了所有xmlns内容): 最佳答案 您需要设置Owner的Dialo
我正在使用C#/WPF制作应用程序。在该应用程序中,如果发生特定事件,我想使窗口闪烁,以便该应用程序的用户知道发生了什么事。如何在我的C#WPF应用程序中获取它。就像在YahooMessenger中一样,如果您收到一条消息,消息窗口会闪烁以吸引您的注意力,我想在我的应用程序中使用这种效果。 最佳答案 可以使用以下代码在WPF中以类似于IM通知的方式闪烁窗口和任务栏。它使用PlatformInvoke使用WPFApplication.Current.MainWindow的Win32句柄调用WinAPI函数FlashWindowEx代码
如何从一个页面中获取一个窗口,这样我的窗口中就有了一个页面框架:并尝试以这种方式从此页面访问我的窗口:privatevoidPage_Loaded(objectsender,RoutedEventArgse){if((Window1)this.Parent==null)System.Windows.Forms.MessageBox.Show("111");elsewb1.ObjectForScripting=newMyScriptObject((Window1)this.Parent);但是Parent返回null,所以我看到“111”消息,我的错误在哪里以及如何使窗口对象正确?
我有一个WPF应用程序,它有一个主窗口,我正在其上打开一个弹出窗口。我面临的问题是弹出窗口始终位于顶部。如果我打开其他应用程序(任何Windows应用程序),主窗口会进入后台,但弹出窗口仍保留在顶部。但是,如果我最小化Mainwindow,弹出窗口也会最小化。请帮助解决这个问题。更新:我正在打开弹出窗口,如下所示myPopup.IsOpen=true; 最佳答案 usingSystem;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;usingSystem.Wi
我需要禁用visualstudio控制台的控制台窗口中的关闭按钮用C#编写的应用程序。我希望应用程序运行直到完成并且用户不应该能够通过关闭控制台窗口来停止它。我正在使用visualstudio2010 最佳答案 下面是一个在控制台窗口禁用关闭按钮的例子:classProgram{privateconstintMF_BYCOMMAND=0x00000000;publicconstintSC_CLOSE=0xF060;[DllImport("user32.dll")]publicstaticexternintDeleteMenu(Int
我正在使用Console.ReadLine读取用户的输入。但是,我想在输入时隐藏/排除控制台屏幕上输入的文本。例如,当用户写入“a”时,它会将“a”写入控制台,然后我将拥有一个值为“a”的变量。但是,我不想在控制台的输出中写入“a”。我该怎么做? 最佳答案 这是一个简短的实现。感谢@ojblass的想法System.Console.Write("password:");stringpassword=null;while(true){varkey=System.Console.ReadKey(true);if(key.Key==Con